package com.hhkj.admin.order.model.dopo;

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hhkj.admin.order.domain.Order;
import com.hhkj.admin.order.model.res.OrderRefundRes;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class OrderPo extends Order {

    /** 学员列表 */
    private List<OrderItemPo> itemList;

    /** 退款打款状态 */
    private String refundPayoutStatusCode;

    /** 退款备注信息 */
    private String refundDescription;

    /** 开票标记 **/
    private Integer invoiceFlag;

    /** 退款金额 **/
    private BigDecimal refundPrice;

    /** 退款信息列表 **/
    private List<OrderRefundPo> orderRefundPoList;

    public BigDecimal getRefundPrice() {
        BigDecimal finalPrice = getFinalPrice();
        BigDecimal payPrice = getPayPrice();
        if (ObjectUtil.isNotNull(finalPrice) && ObjectUtil.isNotNull(payPrice)) {
            return payPrice.subtract(finalPrice);
        }
        return new BigDecimal("0.00");
    }

    @Override
    @JsonIgnore(value = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    public Date getCreateTime() {
        return super.getCreateTime();
    }

}
